Comme le dit notre président Macron, c'est la fin de l'abondance, il faut faire des économies d'énergie de partout. Et l'informatique en entreprise fait partie de ces secteurs ou il sera certainement nécessaire d'en faire.
Ayant commencé à faire de la programmation dès mon plus jeune âge (et regrettant maintenant d'avoir fait un cursus en mécanique), j'ai toujours eu un attrait pour les langages de programmation (leur caractéristiques, leur vitesse, leur capacité à faciliter le développement, leurs différences entre eux…).
Je me suis demandé il y a quelques années si il existait des langages de programmation plus économes en énergie que d'autres et je suis tombé sur cet article traitant justement de la performance énergétique de différents langages de programmation:
Energy Efficiency across Programming Languages How Do Energy, Time, and Memory Relate?
Ci dessous le tableau récapitulatif des résultats:
On trouve donc (pour les plus connus) des plus économes aux plus gourmands:
C/C++ Et oui ils sont IN-DÉ-TRO-NA-BLES ! Pas besoin de les présenter, tout le monde les connaît!
Rust Ce jeune langage développé par Mozilla Research est vraiment très rapide en plus de posséder beaucoup de choses appréciables comme l'inférence de type, le filtrage par empreintes. Il faut vraiment que je m'y mette.
Java Et oui Java est un langage performant, tout le monde vous le dit! Et il est plutôt économe en énergie.
Fortran On ne le présente plus lui non plus! Toujours très utilisé dans les codes de calculs et dans certaines entreprises.
Haskell Mon langage de prédilection depuis plusieurs années. Et non, les fonctionnels ne sont pas aussi lents et difficiles à apprendre comme le prétendent certains. Ils ont même énormément d'avantages.
C# Langage très populaire dans le monde de windows.
Go Le langage développé par Google.
PHP LE langage de génération de pages HTML. Il est aussi gourmand en énergie !
Erlang J'avais fait quelques tutoriels et j'avais hésité à me lancer dessus. J'ai bien fait d’arrêter, j'aurais perdu mon temps.
Ruby Très utilisé pour le développement de sites internet. Très énergivore lui aussi !
Python Et oui tout le monde ne jure que par lui, on l'enseigne dans les écoles, on s'en sert pour développer des applications de plus en plus grosses et de plus en plus dur à maintenir, on s'arrache les cheveux avec ses messages d'erreurs en cours d’exécution, sans parler du passage de la v2 à la v31… Et il est très énergivore ! En plus d'être très lent !
Et enfin:
Perl Je l'ai utilisé à une époque. Tous les inconvénients de Python sans les avantages!
Et en prenant en compte la vitesse d'exécution et la quantité de mémoire utilisée, on trouve (selon ce que l'on souhaite optimiser) un classement qui reste dans l'ensemble très similaire (même si des différences existent d'une combinaison à l'autre, c'est le cas par exemple pour Go, PHP et Fortran):
C/C++/Rust/Fortran/Go dominent le classement et sont les plus économes tout en étant rapides et peu consommateurs de mémoire.
Java/OCaml/C#/Haskell forment un groupe intermédiaire. Moyennement consommateurs en énergie, avec une vitesse d'exécution plus lente et une consommation de mémoire un peu plus importante.
PHP/Erlang/Ruby/Python/Javascript/Perl font clairement partie des langages les plus lents, les plus énergivores et avec une consommation de mémoire pouvant aller de moyenne à importante!
J'espère que ce petit récapitulatif vous aura donné un aperçu des performances énergétique (et d'exécution) de la plupart des langages de programmation existant et qu'il vous aidera a faire votre choix si vous devez démarrer un projet, conseiller un client, et peut être vous aidera t'il a remettre en cause vos croyances sur certains de ces langages.
Notes
1.↑ |
On peut parler aussi ces entreprises qui font sous-traiter la maintenance de leur code par des prestataires parce qu'ils ne veulent pas mettre les doigts dans leur propre 💩 ! |